#ifndef FLYWEIGHTA_H__
#define FLYWEIGHTA_H__

//include header
#include "Flyweight.h"

//using namespace


namespace npFlyweight
{
    //class forward declaration

    class FlyweightA : public Flyweight // class inheritance
    {
        //friend
        
        //embedded type
        
        public: FlyweightA();
        public: virtual ~FlyweightA();
        public: FlyweightA(const FlyweightA& cpy);
        public: FlyweightA& operator=(const FlyweightA& asn);
        public: FlyweightA(FlyweightA&& mov) noexcept;
        public: FlyweightA& operator=(FlyweightA&& mva) noexcept;
        public: virtual FlyweightA* clone() const;

        //other constructors

        //public methods
        public: virtual void operate(int n) throw();

        //protected methods

        //private methods

        //protected data

        //private data

        //others
    };
} // namespace npFlyweight


#endif //FLYWEIGHTA_H__
